package tornadoj.web;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Created by tinyms on 14-2-1.
 */

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Function {
    /**
     * Api函数名称,不设置此值将默认使用方法名
     *
     * @return
     */
    String name() default "";

    /**
     * 指定Ehcache name,开启Api缓存功能,需同时指定Cache Key
     *
     * @return
     */
    String cacheName() default "";

    /**
     * 指定Cache Key
     * 支持使用Http参数占位,例如: key_{param1}_{param2},如果有一个参数取得的值为空,则本次不做缓存处理
     *
     * @return
     */
    String cacheKey() default "";

    /**
     * 手动转换JSON格式,Api直接返回结果,系统不再做JSON处理
     *
     * @return
     */
    boolean manualConvertToJson() default false;

    /**
     * 是否需要用户认证访问
     *
     * @return
     */
    boolean auth() default false;
}
